﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CoopSaude.Dao;

namespace CoopSaude.Dto
{
    public class InfoSessaoDTO
	{
		#region public properties
		public int Id { get; set; }
        public int IdProntuario { get; set; }
		public string IdFisioterapeuta { get; set; }
        public System.DateTime Data { get; set; }
		public string Descricao { get; set; }
		public string IdPaciente { get; set; }
		#endregion

		#region constructors
		public InfoSessaoDTO()
		{
		}

		private InfoSessaoDTO(InfoSessaoFisioterapia.SerializedInfoSessao sessao)
		{
			Id = sessao.id;
			IdProntuario = sessao.idProntuario;
			IdFisioterapeuta = sessao.idFisioterapeuta;
			Data = sessao.data;
			Descricao = sessao.descricao;
		}

		private InfoSessaoDTO(InfoSessaoFisioterapia.SerializedInfoSessao sessao, string idPaciente)
		{
			Id = sessao.id;
			IdProntuario = sessao.idProntuario;
			IdFisioterapeuta = sessao.idFisioterapeuta;
			Data = sessao.data;
			Descricao = sessao.descricao;
			IdPaciente = idPaciente;
		}
		#endregion

		#region static methods
		public static InfoSessaoDTO CriarSessao(string idFisioterapeuta, string idPaciente, string descricao)
		{
			return new InfoSessaoDTO(InfoSessaoDAO.AdicionarSessao(idFisioterapeuta, idPaciente, descricao), idPaciente);
		}

		public static InfoSessaoDTO BuscarSessao(int idSessao)
		{
			return new InfoSessaoDTO(InfoSessaoDAO.VisualizarSessao(idSessao));
		}

		public static List<InfoSessaoDTO> ListarSessoes(string idFisioterapeuta, string idPaciente)
		{
			List<InfoSessaoDTO> sessoes = new List<InfoSessaoDTO>();
			foreach (var sessao in InfoSessaoDAO.ListarSessoes(idFisioterapeuta, idPaciente))
			{
				InfoSessaoDTO sessaoDto = new InfoSessaoDTO(sessao, idPaciente);
				sessoes.Add(sessaoDto);
			}
			return sessoes;
		}
		#endregion
	}
}